<?php

namespace So\Annotation;

use Attribute;
use Hyperf\Di\Annotation\AbstractAnnotation;

/**
 * Validation验证器
 * @Annotation
 * @Target("METHOD")
 * @author Saopig <1306222220@qq.com>
 */
#[Attribute(Attribute::TARGET_METHOD)]
class Validation extends AbstractAnnotation
{
    /**
     * 指定场景
     * scene
     * @var string
     */
    public string $scene = '';

    /**
     * 安全过滤
     * security
     * @var bool
     */
    public bool $security = true;

    /**
     * 定义注入变量名称
     * var
     * @var string
     */
    public string $var = 'data';

    /**
     * 注入变量是否多余字段
     * filter
     * @var bool
     */
    public bool $filter = true;

    /**
     * 默认绑定场景
     * @param string $value
     */
    public function __construct($value = '')
    {
        parent::__construct($value);
        $this->bindMainProperty('scene', $value);
    }

}